-- 开始事务
BEGIN;

-- 创建电费账单信息表
CREATE TABLE IF NOT EXISTS electricity_bills (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条电费账单记录',
  user_id INT NOT NULL COMMENT '关联用户的ID',
  ele_id VARCHAR(64) DEFAULT NULL COMMENT '电费账单的唯一标识符',
  bill_date DATETIME NOT NULL COMMENT '账单日期',
  electricity_usage FLOAT NOT NULL COMMENT '用电量',
  amount FLOAT NOT NULL COMMENT '账单金额',
  ele_payment FLOAT NOT NULL COMMENT '缴费前的电费余额',
  ele_balance_before FLOAT NOT NULL COMMENT '缴费前的电费余额（备用字段）',
  ele_balance_now FLOAT NOT NULL COMMENT '缴费后的电费余额',
  pay_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '用户缴费的具体时间',
  status VARCHAR(50) DEFAULT 'unpaid' COMMENT '账单状态，默认未支付',
  due_date DATETIME NOT NULL COMMENT '账单到期日期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='电费账单信息表';

-- 创建用户电费信息表
CREATE TABLE IF NOT EXISTS ele_info (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条用户电费信息记录',
  ele_sum FLOAT NOT NULL COMMENT '用户总的电费金额',
  ele_status VARCHAR(32) NOT NULL COMMENT '用户电费状态（如已缴费、未缴费、欠费等）',
  ele_balance FLOAT NOT NULL COMMENT '用户当前的电费余额',
  ele_useMoney FLOAT NOT NULL COMMENT '用户已经使用的电费金额'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户电费信息表';

-- 创建用户详情表
CREATE TABLE IF NOT EXISTS user_profile (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID，引用users表的id字段',
  name VARCHAR(255) COMMENT '用户姓名',
  contact_info VARCHAR(255) COMMENT '用户联系方式',
  address VARCHAR(255) COMMENT '用户地址'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户详情表';

-- 创建用户信息表
CREATE TABLE IF NOT EXISTS userinfo (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条用户记录',
  username VARCHAR(255) NOT NULL UNIQUE COMMENT '用户名，唯一',
  password VARCHAR(255) NOT NULL  COMMENT '用户密码',
  email VARCHAR(255) NOT NULL UNIQUE COMMENT '用户邮箱',
  name VARCHAR(255) COMMENT '用户姓名',
  contact_info VARCHAR(255) COMMENT '用户联系方式',
  address VARCHAR(255) COMMENT '用户地址',
  role VARCHAR(50) DEFAULT 'user' COMMENT '用户角色，默认是普通用户',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '用户注册时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

-- 创建支付信息表
CREATE TABLE IF NOT EXISTS payments (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条支付记录',
  user_id INT NOT NULL COMMENT '用户ID',
  bill_id INT NOT NULL COMMENT '账单ID',
  amount FLOAT NOT NULL COMMENT '支付金额',
  payment_method VARCHAR(50) COMMENT '支付方式',
  payment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '支付日期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付信息表';

-- 创建用电分析报告表
CREATE TABLE IF NOT EXISTS usage_reports (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条用电分析报告记录',
  user_id INT NOT NULL COMMENT '用户ID',
  report_date DATETIME NOT NULL COMMENT '报告日期',
  report TEXT NOT NULL COMMENT '报告内容'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用电分析报告表';

-- 创建异常报警信息表
CREATE TABLE IF NOT EXISTS alerts (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条报警记录',
  user_id INT NOT NULL COMMENT '用户ID',
  alert_type VARCHAR(50) COMMENT '报警类型',
  alert_message TEXT COMMENT '报警信息',
  alert_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '报警日期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='异常报警信息表';

-- 创建实时用电监控表
CREATE TABLE IF NOT EXISTS real_time_usage (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条实时用电记录',
  user_id INT NOT NULL COMMENT '用户ID',
  electricity_usage FLOAT NOT NULL COMMENT '实时用电量',
  timestamp DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时用电监控表';

-- 创建通知表
CREATE TABLE IF NOT EXISTS notifications (
  id INT AUTO_INCREMENT PRIMARY KEY COMMENT '唯一标识每条通知记录',
  user_id INT NOT NULL COMMENT '用户ID',
  message TEXT NOT NULL COMMENT '通知内容',
  is_read TINYINT(1) DEFAULT 0 COMMENT '是否已读，0为未读，1为已读',
  timestamp DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '通知时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知表';

-- 提交事务
COMMIT;
